package com.tedu.api.thread;

/**
 * 创建线程---第三种方案：匿名内部类方案【推荐：创建一次】
 * Lambda表达式---JDK1.8推出新版本：简化匿名内部类写法
 * Lambda表达式也叫函数式表遍历！功能：简化匿名内部类
 *                                简化集合遍历功能
 *                                简化功能方法
 *                                简化IO流功能
 * Lambda表达式语法：()->{},属于功能性接口！
 * () 代表
 * -> 代表
 * {} 代表
 * 需求：创建接口  Insert 插排  提供：电
 *      子类实现  Computer  电脑
 *      子类实现接口--完成对象创建【创建1次】
 *      匿名内部类方式完成对象创建
 *      Lambda表达式结构完成对象创建
 */
public class LambdaAPI {
    public static void main(String[] args) {
        /*Insert cp=new Insert(){
            public String Dian(long money,char ch) {
                return "电脑通电了";
            }
        };
        cp.Dian(100,'2');*/
        //使用Lambda表达式--简化方法
        Insert cp = (money,ch) -> "电脑通电了";
        cp.Dian(100,'2');
        /**
         * Lambda表达式【简化方法】---匿名内部类【简化1个子类】【接口创建】
         * () 代表 方法中参数，情况①：无参数，不可以删除
         *                     ②：有参数，有一个参数,括号能删除
         *                     ③：有参数，有2个参数以上括号不能删除
         *  ->代表 new对象的过程
         *  {} 代表 方法中内容，情况①：看返回值 void 空 传入输出语句，删大括号
         *                      ②：看方法返回值 Java数据类型
         *                               【两种：八大基本数据类型|[还有]引用类型】
         *                                           返回值存在return  不可以删除大括号【推荐】
         *                                        2.1返回值不存在return  可以删除大括号【不推荐】
         *                      ③：看返回值 返回集合 不可以删大括号
         */






        //创建插排接口--必须使用子实现类
//    Insert cp=new Computer(); //多态：造型
//    cp.电();
        //子实现类--创建一次对象--匿名内部类：支持接口以及抽象类创建

    }

    //创建插排--接口
    interface Insert {
        public String Dian(long money,char ch);
    }
}
//创建插排实现类--电脑类
/*class Computer implements Insert{
    public void 电(){
        System.out.println("电脑通电开机了");
    }
}
 */